Le cœur du Interface de calcul hétérogène pour la portabilité (HIP) réside dans sa capacité à abstraire les outils spécifiques au matériel vers une API unique de runtime C++. En utilisant un paradigme Single-Source, les développeurs peuvent maintenir une seule base de code qui se mappe dynamiquement vers les backends NVIDIA ou AMD.
1. Résolution matérielle basée sur le chemin
L'architecture repose sur des marqueurs d'environnement agissant comme des repères de navigation pour le système de construction. Ces marqueurs indiquent au hipcc enveloppeur de compilateur où trouver les bibliothèques et en-têtes nécessaires pour le matériel.
- CUDA_PATH : Le repère principal pour la pile NVIDIA (flux NVCC/PTX).
- HIP_PATH : Le repère principal pour la pile AMD ROCm (flux Clang/LLVM).
2. Abstraction de la pile de calcul
La portabilité est obtenue en dissociant la couche d'application de la microarchitecture. La logique est résolue au moment de la construction en utilisant hipcc, garantissant que la maintenance du code $O(1)$ donne lieu à une compatibilité matérielle $O(N)$.